package com.huo.dao;

import com.github.pagehelper.Page;
import com.huo.pojo.CheckGroup;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CheckGroupDao {

    /**
     * @Description: 新增
     * @Author: 汪青松
     * @Param: [checkGroup, checkitemIds]
     * @Return: void
     * @CreateDate: 2021/1/18 14:43
     */
    void add(CheckGroup checkGroup);

    /**
     * @Description: 设置检查组和检查项之间的关系
     * @Author: 汪青松
     * @Param: [checkgroupId, checkitemIds]
     * @Return: void
     * @CreateDate: 2021/1/18 14:47
     */
    void setCheckGroupAndCheckitemIds(@Param("checkgroupId") Integer checkgroupId, @Param("checkitemId") Integer checkitemId);

    /**
     * @Description: 根据条件查询检查组列表
     * @Author: 汪青松
     * @Param: [queryString]
     * @Return: com.github.pagehelper.Page<com.huo.pojo.CheckGroup>
     * @CreateDate: 2021/1/18 17:51
     */
    Page<CheckGroup> selectByCondition(String queryString);

    /**
     * @Description: 根据id获取检查组信息
     * @Author: 汪青松
     * @Param: [checkgroupId]
     * @Return: com.huo.entity.Result
     * @CreateDate: 2021/1/19 14:55
     */
    CheckGroup findById(Integer checkgroupId);

    /**
     * @Description: 根据检查组id查询检查项ids
     * @Author: 汪青松
     * @Param: [checkgroupId]
     * @Return: com.huo.entity.Result
     * @CreateDate: 2021/1/19 15:01
     */
    Integer[] findCheckitemIdsById(Integer checkgroupId);

    /**
     * @Description: 删除检查组与检查项之间的关系
     * @Author: 汪青松
     * @Param: [id, checkitemIds]
     * @Return: void
     * @CreateDate: 2021/1/19 16:25
     */
    void deleteRelation(Integer checkgroupId);

    /**
     * @Description: 编辑
     * @Author: 汪青松
     * @Param: [checkitemIds, checkGroup]
     * @Return: com.huo.entity.Result
     * @CreateDate: 2021/1/19 16:05
     */
    void edit(CheckGroup checkGroup);

    /**
     * @Description: 查询检查组是否有关联的检查项
     * @Author: 汪青松
     * @Param: [checkgroupId]
     * @Return: long
     * @CreateDate: 2021/1/19 17:26
     */
    long countByCheckgroupId(Integer checkgroupId);

    /**
     * @Description: 删除
     * @Author: 汪青松
     * @Param: [checkgroupId]
     * @Return: com.huo.entity.Result
     * @CreateDate: 2021/1/19 17:12
     */
    void delete(Integer checkgroupId);

    /**
     * @Description: 查询所有检查组
     * @Author: 汪青松
     * @Param: []
     * @Return: com.huo.entity.Result
     * @CreateDate: 2021/1/21 16:25
     */
    List<CheckGroup> findAll();
}
